(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 11.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[     61580,       1255]
NotebookOptionsPosition[     60313,       1216]
NotebookOutlinePosition[     60748,       1235]
CellTagsIndexPosition[     60705,       1232]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[
 StyleBox["\:79fb\:52a8\:76f8\:673a\:53ef\:89c6\:5316", "Title"]], "Input",
 CellFrame->{{0, 0}, {0.5, 0}},
 CellGroupingRules->{"GroupTogetherGrouping", 10000.},
 CellChangeTimes->{{3.817331932618697*^9, 3.8173319460104628`*^9}, 
   3.817348546926899*^9, {3.817357762925655*^9, 3.8173577657199345`*^9}, 
   3.817521823174597*^9, 3.817616139023605*^9, 3.817618174598412*^9, 
   3.817690181898816*^9, 3.8177897710308266`*^9, {3.817966114956794*^9, 
   3.817966134730771*^9}, {3.8181309248537493`*^9, 3.8181309299042544`*^9}, {
   3.8206340517794085`*^9, 3.8206340537116013`*^9}},
 TextAlignment->Center],

Cell[CellGroupData[{

Cell[BoxData[
 StyleBox["\:5b9a\:4e49\:573a\:666f", "Subsection"]], "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10001.},
 CellChangeTimes->{{3.8173319710178933`*^9, 3.8173319847946815`*^9}, 
   3.817332046959237*^9, 3.8173485841018457`*^9, 3.817348654194854*^9, {
   3.8173586705394073`*^9, 3.817358672035557*^9}, 3.8174156245735397`*^9, {
   3.817415663231971*^9, 3.8174156701883745`*^9}},
 TextAlignment->Center],

Cell[BoxData[
 RowBox[{
  RowBox[{
  "(*", "\:5b9a\:4e49\:76f8\:673a\:7531\:76f8\:673a\:89c6\:70b9lookfrom\:548c\
\:671d\:5411lookat\:7ec4\:6210", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"camera", "[", 
      RowBox[{"lookfrom_", ",", "lookat_"}], "]"}], "=", 
     RowBox[{"(", 
      RowBox[{"{", 
       RowBox[{"lookfrom", ",", "lookat"}], "}"}], ")"}]}], ";"}], 
   "\[IndentingNewLine]", 
   RowBox[{
   "(*", "\:751f\:6210\:7684\:76ee\:6807\:56fe\:7247\:5c3a\:5bf8", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"width", "=", "200"}], ";"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"height", "=", "100"}], ";"}], "\[IndentingNewLine]", 
   RowBox[{"(*", 
    RowBox[{
    "\:865a\:62df\:89c6\:7a97\:5728\:5168\:5c40\:5750\:6807\:7684\:5bbd\:9ad8\
", "\:ff0c", "\:5f71\:54cd\:5bbd\:9ad8\:6bd4"}], "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"viewPortWidth", "=", "4"}], ";"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"viewPortHeight", "=", "2"}], ";"}]}]}]], "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10001.},
 CellChangeTimes->{{3.8173320303312855`*^9, 3.8173320469602365`*^9}, {
   3.8173320976091337`*^9, 3.817332104687539*^9}, 3.8173327535876536`*^9, {
   3.817334078691467*^9, 3.817334078870999*^9}, {3.817334401593808*^9, 
   3.817334545305629*^9}, 3.8173353934318776`*^9, 3.817335450314565*^9, {
   3.8173371538839054`*^9, 3.817337165772094*^9}, {3.817337391527667*^9, 
   3.8173374670579495`*^9}, 3.8173485841018457`*^9, {3.817354088726267*^9, 
   3.81735411975737*^9}, {3.8173578229806595`*^9, 3.8173578388682485`*^9}, {
   3.817357998663226*^9, 3.817358040338393*^9}, {3.8173585716345177`*^9, 
   3.817358615119866*^9}, 3.8174156245735397`*^9, {3.817415663231971*^9, 
   3.8174156701883745`*^9}, {3.817417981841733*^9, 3.8174179859098587`*^9}, 
   3.817419855445687*^9, {3.8174206474975386`*^9, 3.817420649343106*^9}, {
   3.8175246100955315`*^9, 3.8175246885613775`*^9}, {3.8175247358871098`*^9, 
   3.817524736704191*^9}, {3.8175267782593307`*^9, 3.8175267854930544`*^9}, {
   3.81752683014952*^9, 3.8175268588203864`*^9}, 3.817531663891855*^9, 
   3.8175321000704684`*^9, {3.817533784172277*^9, 3.8175338398218412`*^9}, 
   3.81753387771063*^9, 3.8175339468135395`*^9, {3.8175353366615105`*^9, 
   3.8175353385727015`*^9}, {3.817535379122756*^9, 3.8175354017130146`*^9}, {
   3.8175976803041363`*^9, 3.8175976829484005`*^9}, {3.817605073461396*^9, 
   3.8176050950825586`*^9}, {3.8176903015387793`*^9, 
   3.8176903354971747`*^9}, {3.817691186614278*^9, 3.8176911916617823`*^9}, {
   3.8176912344660625`*^9, 3.8176912347020864`*^9}, {3.8176912718478003`*^9, 
   3.817691283185934*^9}, {3.817691326101225*^9, 3.8176914128318977`*^9}, {
   3.817691847060316*^9, 3.8176919379053993`*^9}, 3.8176961701005907`*^9, {
   3.8177775095841255`*^9, 3.817777524896126*^9}, {3.817777557286126*^9, 
   3.817777604671126*^9}, {3.8177783212379384`*^9, 3.817778324974312*^9}, {
   3.8177783755723715`*^9, 3.817778378248639*^9}, {3.817778708599671*^9, 
   3.817778711710982*^9}, {3.817778866898499*^9, 3.817778870244834*^9}, {
   3.8177793573335376`*^9, 3.8177793959934034`*^9}, {3.817787910752808*^9, 
   3.817787912223955*^9}, {3.8177897813308563`*^9, 3.817789812436967*^9}, {
   3.817789856734396*^9, 3.81778992688041*^9}, {3.8177901589136114`*^9, 
   3.817790191329852*^9}, 3.817793591939889*^9, {3.8177936351192064`*^9, 
   3.8177937567523685`*^9}, {3.8177939075654483`*^9, 
   3.8177940042261133`*^9}, {3.8177940417808685`*^9, 3.817794118348524*^9}, {
   3.8177941719768867`*^9, 3.8177941911088*^9}, {3.817794222857974*^9, 
   3.817794223693058*^9}, {3.817794281548843*^9, 3.8177943070193896`*^9}, {
   3.8177945740650916`*^9, 3.817794576628348*^9}, {3.817794627901475*^9, 
   3.8177946565753417`*^9}, {3.817865848595995*^9, 3.817865851567292*^9}, {
   3.817866278599991*^9, 3.8178662822713585`*^9}, {3.817866477614891*^9, 
   3.8178664797441034`*^9}, {3.8178815198429956`*^9, 3.817881522814293*^9}, {
   3.8179584448898497`*^9, 3.817958452975658*^9}, {3.817961979962331*^9, 
   3.817961982642599*^9}, {3.8179625736616945`*^9, 3.8179625743107595`*^9}, {
   3.8179656420285053`*^9, 3.8179656461569185`*^9}, 3.818133783971633*^9, {
   3.8183076176992254`*^9, 3.8183076185683126`*^9}, 3.8206312017514343`*^9, {
   3.8206320582860794`*^9, 3.820632060805331*^9}, {3.8206337931735506`*^9, 
   3.820633807142947*^9}, {3.8206339067759094`*^9, 3.820633928463078*^9}, {
   3.8206339853027616`*^9, 3.8206339960628376`*^9}, {3.8206351943736563`*^9, 
   3.8206352509763165`*^9}, {3.820635783792592*^9, 3.8206358323784504`*^9}, {
   3.820636150652275*^9, 3.8206362271479235`*^9}, {3.820636860763487*^9, 
   3.820636892868487*^9}, {3.820643745900738*^9, 3.820643749557103*^9}, {
   3.820643782057353*^9, 3.820643784855633*^9}, {3.820643828917039*^9, 
   3.820643863383485*^9}, {3.8206439769858437`*^9, 3.8206440533114758`*^9}, {
   3.8206446669678354`*^9, 3.8206446933204703`*^9}, {3.8206447378189197`*^9, 
   3.8206447564387817`*^9}, {3.8206448087240095`*^9, 3.820644836243761*^9}, {
   3.820644868441981*^9, 3.8206448748506217`*^9}, {3.820644928366973*^9, 
   3.8206449328854246`*^9}, {3.820700306532063*^9, 3.820700319167007*^9}, {
   3.82070263470467*^9, 3.820702637097909*^9}, {3.820703367063898*^9, 
   3.8207034283060217`*^9}, 3.820703767894977*^9, 3.8207042440445876`*^9, {
   3.8207048214213195`*^9, 3.8207048271298904`*^9}, {3.8207050860917835`*^9, 
   3.820705087116886*^9}, {3.820705426736845*^9, 3.8207054288560567`*^9}, {
   3.8207063518643484`*^9, 3.820706354213583*^9}, 3.8207149780559096`*^9, {
   3.8207187408461604`*^9, 3.820718742332309*^9}, {3.8207190208281555`*^9, 
   3.8207190484979224`*^9}, {3.8207202032563868`*^9, 
   3.8207202034204035`*^9}, {3.8207206961066666`*^9, 3.820720698600916*^9}, {
   3.8207244712791557`*^9, 3.8207244818352113`*^9}, {3.820724511986226*^9, 
   3.8207245880358305`*^9}, {3.8207250991475067`*^9, 3.820725100370507*^9}}]
}, Open  ]],

Cell[BoxData[
 StyleBox["\:5efa\:7acb\:76f8\:673a\:5c40\:90e8\:5750\:6807", 
  "Subsubsection"]], "Input",
 CellChangeTimes->{{3.820706358820044*^9, 3.8207063660267644`*^9}},
 TextAlignment->Center],

Cell[BoxData[
 StyleBox[
  RowBox[{
   RowBox[{"\:76f8\:673a\:5c40\:90e8\:5750\:6807", 
    RowBox[{"(", 
     RowBox[{"camw", ",", "camu", ",", "camv"}], ")"}], 
    "\:53ef\:4ee5\:901a\:8fc7lookfrom"}], "\:3001", "lookat", "\:3001", 
   "up\:8fd9\:4e09\:4e2a\:91cf\:6c42\:5f97"}], "Subsubtitle"]], "Input",
 TextAlignment->Center],

Cell[BoxData[
 RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
  RowBox[{"(*", "\:5b9a\:4e49\:76f8\:673a", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"camera0", ":=", 
     RowBox[{"camera", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "y", ",", "z"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", 
         RowBox[{"-", "1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{
    "(*", "up\:662f\:4e00\:4e2a\:6cbfy\:5411\:4e0a\:7684\:5411\:91cf", "*)"}],
     "\[IndentingNewLine]", 
    RowBox[{"up", "=", 
     RowBox[{"{", 
      RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"(*", "\:6c42\:76f8\:673a\:5c40\:90e8\:5750\:6807", "*)"}], 
    "\[IndentingNewLine]", 
    RowBox[{"camw", "=", 
     RowBox[{"Normalize", "[", 
      RowBox[{
       RowBox[{"camera0", "[", 
        RowBox[{"[", "1", "]"}], "]"}], "-", 
       RowBox[{"camera0", "[", 
        RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camu", "=", 
     RowBox[{"Normalize", "[", 
      RowBox[{"up", "\[Cross]", "camw"}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camv", "=", 
     RowBox[{"camw", "\[Cross]", "camu"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"Graphics3D", "[", 
     RowBox[{
      RowBox[{"{", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"Arrowheads", "[", "Small", "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Point", "[", 
         RowBox[{"camera0", "[", 
          RowBox[{"[", "1", "]"}], "]"}], "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Point", "[", 
         RowBox[{"camera0", "[", 
          RowBox[{"[", "2", "]"}], "]"}], "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<w\>\"", ",", 
          RowBox[{"camw", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<u\>\"", ",", 
          RowBox[{"camu", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<v\>\"", ",", 
          RowBox[{"camv", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "2", "]"}], "]"}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Red", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camw", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Green", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camu", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Blue", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camv", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Axes", "\[Rule]", "True"}], ",", 
      RowBox[{"PlotRange", "\[Rule]", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}]}], "}"}]}]}], 
     "\[IndentingNewLine]", "]"}]}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"y", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"z", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}]}], "\[IndentingNewLine]", 
  "]"}]], "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10002.},
 CellChangeTimes->{{3.817333895641637*^9, 3.8173339709333687`*^9}, {
   3.81733401392829*^9, 3.8173340177603006`*^9}, {3.817334557001119*^9, 
   3.817334586799177*^9}, {3.8173346247757807`*^9, 3.8173346540459967`*^9}, 
   3.817334857444251*^9, {3.817334892441251*^9, 3.8173349357212505`*^9}, {
   3.8173349706662507`*^9, 3.817335027612251*^9}, {3.8173350973042507`*^9, 
   3.817335128815251*^9}, {3.817335237379274*^9, 3.8173352935398893`*^9}, {
   3.8173353316346984`*^9, 3.8173353889424286`*^9}, {3.8173354748080144`*^9, 
   3.81733555447298*^9}, 3.817335591787711*^9, {3.817335626826215*^9, 
   3.8173356328068123`*^9}, {3.817335695044036*^9, 3.8173357361971507`*^9}, {
   3.8173357673772683`*^9, 3.817335801774708*^9}, {3.817335887846314*^9, 
   3.8173359354990788`*^9}, {3.8173359818987184`*^9, 
   3.8173360571442423`*^9}, {3.8173361918207083`*^9, 3.817336238160342*^9}, 
   3.817336489739497*^9, 3.8173379763469496`*^9, {3.8173477193833776`*^9, 
   3.817347732861725*^9}, {3.8173477883302717`*^9, 3.8173478044988885`*^9}, 
   3.817348546927899*^9, {3.8173490648879194`*^9, 3.817349121790609*^9}, {
   3.817349174255855*^9, 3.8173492572001486`*^9}, {3.817349330670495*^9, 
   3.817349335480976*^9}, {3.8173495632617517`*^9, 3.817349602256651*^9}, {
   3.8173497379652205`*^9, 3.8173497419396176`*^9}, 3.81735012210063*^9, {
   3.8173501700124207`*^9, 3.8173501825916786`*^9}, {3.8173502510995283`*^9, 
   3.817350260349454*^9}, {3.8173506229087057`*^9, 3.8173506516575804`*^9}, {
   3.8173508048919024`*^9, 3.8173508274891615`*^9}, {3.8173541353049245`*^9, 
   3.8173541904474382`*^9}, {3.8173542294453373`*^9, 3.817354281702563*^9}, {
   3.817354479236314*^9, 3.8173545032827187`*^9}, {3.8173545508454742`*^9, 
   3.8173546698063693`*^9}, {3.8173586305744114`*^9, 3.817358633190673*^9}, {
   3.817358764258778*^9, 3.817358828873239*^9}, 3.8174156245745373`*^9, {
   3.817415663231971*^9, 3.817415673961315*^9}, {3.8174179924214516`*^9, 
   3.8174179957276134`*^9}, 3.81741980884787*^9, {3.8174198443405056`*^9, 
   3.8174198498571787`*^9}, {3.817510793124935*^9, 3.8175107956651893`*^9}, {
   3.817510856418264*^9, 3.817510913024372*^9}, 3.8175109827803965`*^9, {
   3.8175111544412284`*^9, 3.817511196139058*^9}, {3.81751134795365*^9, 
   3.81751145206365*^9}, {3.81751149240565*^9, 3.817511569931622*^9}, {
   3.817511627843413*^9, 3.8175116704146695`*^9}, {3.8175246484103627`*^9, 
   3.8175246499425163`*^9}, {3.8175247857690973`*^9, 
   3.8175248080953293`*^9}, {3.817526853203825*^9, 3.8175268558920937`*^9}, 
   3.8175335319660587`*^9, {3.817598243487692*^9, 3.817598247741692*^9}, {
   3.817598312353692*^9, 3.817598313978692*^9}, {3.817691969752584*^9, 
   3.817692004167025*^9}, {3.8176925334699497`*^9, 3.8176925493175344`*^9}, {
   3.8176925814457474`*^9, 3.8176927274443455`*^9}, {3.8177776884141254`*^9, 
   3.817777754646285*^9}, {3.8177777940862284`*^9, 3.8177778092997494`*^9}, {
   3.8177791123100376`*^9, 3.8177791717229786`*^9}, {3.817794339392627*^9, 
   3.817794380659753*^9}, {3.8178503757329893`*^9, 3.817850389354989*^9}, {
   3.8179593795623074`*^9, 3.8179593869720483`*^9}, {3.8179594897443247`*^9, 
   3.817959506953045*^9}, {3.8179595416005096`*^9, 3.8179595928336325`*^9}, 
   3.817964695983906*^9, {3.8179648017314796`*^9, 3.8179648064889555`*^9}, {
   3.817964875764882*^9, 3.8179649006643715`*^9}, {3.8179649371834154`*^9, 
   3.8179649555474157`*^9}, {3.8179654080171065`*^9, 
   3.8179654622805324`*^9}, {3.8179659928335824`*^9, 
   3.8179659990172005`*^9}, {3.8179663889031854`*^9, 3.817966395474842*^9}, {
   3.817967441593444*^9, 3.8179674670259867`*^9}, {3.8179675443417177`*^9, 
   3.8179675499002733`*^9}, {3.8181100156108475`*^9, 
   3.8181100230478473`*^9}, {3.818110107505847*^9, 3.8181101238898473`*^9}, {
   3.818110287098138*^9, 3.818110425062933*^9}, 3.8181104582692537`*^9, {
   3.818110683594784*^9, 3.8181107184802723`*^9}, {3.818111051855606*^9, 
   3.818111096009021*^9}, {3.818111357713189*^9, 3.8181113948459015`*^9}, {
   3.8181125448278885`*^9, 3.8181125716895742`*^9}, {3.8181126206574707`*^9, 
   3.8181126738607903`*^9}, {3.8181135731977153`*^9, 
   3.8181136002834234`*^9}, {3.8181145396493506`*^9, 3.818114540172403*^9}, {
   3.8181318247227273`*^9, 3.818131856116866*^9}, {3.8182131370598993`*^9, 
   3.8182131456887627`*^9}, {3.820631366005858*^9, 3.8206313995552125`*^9}, {
   3.820631432992556*^9, 3.8206314674680033`*^9}, {3.8206318661918716`*^9, 
   3.8206318830305552`*^9}, {3.8207026816753664`*^9, 
   3.8207026940766063`*^9}, {3.8207037501302013`*^9, 
   3.8207037508912773`*^9}, {3.820703794283616*^9, 3.8207039525044365`*^9}, {
   3.820704008737059*^9, 3.820704019865172*^9}, {3.8207042493761206`*^9, 
   3.8207042893791203`*^9}, {3.82070432907909*^9, 3.8207043307522573`*^9}, {
   3.8207045398951693`*^9, 3.8207045693451147`*^9}, {3.8207047417963576`*^9, 
   3.820704748837062*^9}, {3.8207047804922266`*^9, 3.8207047812293005`*^9}, {
   3.8207049018663635`*^9, 3.820704910281204*^9}, {3.820705001535329*^9, 
   3.8207050303152065`*^9}, {3.8207050733405085`*^9, 3.820705079932168*^9}, 
   3.82070512416059*^9, 3.820705232535427*^9, {3.8207052838205547`*^9, 
   3.8207052961407866`*^9}, 3.820705401218293*^9, 3.8207056769618645`*^9, {
   3.820705717685937*^9, 3.8207057247716455`*^9}, {3.820705775004668*^9, 
   3.820705807642932*^9}, {3.8207058399511623`*^9, 3.8207058661197786`*^9}, {
   3.8207059237935457`*^9, 3.8207059564958153`*^9}, {3.820706017124878*^9, 
   3.8207060556467295`*^9}, {3.8207061403541994`*^9, 3.8207061788260465`*^9}, 
   3.8207062156677303`*^9, {3.820706280059169*^9, 3.820706299847147*^9}, 
   3.820706512727433*^9, {3.8207066019353533`*^9, 3.8207066285050097`*^9}, {
   3.8207066640775666`*^9, 3.8207067059987583`*^9}, {3.8207074833535924`*^9, 
   3.820707506896592*^9}, {3.8207075489185925`*^9, 3.8207076009075923`*^9}, {
   3.820724624491475*^9, 3.820724659033929*^9}}],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`x$$ = 0, $CellContext`y$$ = 
    0, $CellContext`z$$ = 0, Typeset`show$$ = True, 
    Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", 
    Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = 
    "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`x$$], 0}, -2, 2}, {{
       Hold[$CellContext`y$$], 0}, -2, 2}, {{
       Hold[$CellContext`z$$], 0}, -2, 2}}, Typeset`size$$ = {
    468., {250., 257.}}, Typeset`update$$ = 0, Typeset`initDone$$, 
    Typeset`skipInitDone$$ = True, $CellContext`x$82813$$ = 
    0, $CellContext`y$82814$$ = 0, $CellContext`z$82815$$ = 0}, 
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, 
      "Variables" :> {$CellContext`x$$ = 0, $CellContext`y$$ = 
        0, $CellContext`z$$ = 0}, "ControllerVariables" :> {
        Hold[$CellContext`x$$, $CellContext`x$82813$$, 0], 
        Hold[$CellContext`y$$, $CellContext`y$82814$$, 0], 
        Hold[$CellContext`z$$, $CellContext`z$82815$$, 0]}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, 
      "Body" :> ($CellContext`camera0 := \
$CellContext`camera[{$CellContext`x$$, $CellContext`y$$, $CellContext`z$$}, {
          0, 0, -1}]; $CellContext`up = {0, 1, 0}; $CellContext`camw = 
        Normalize[
         Part[$CellContext`camera0, 1] - 
          Part[$CellContext`camera0, 2]]; $CellContext`camu = Normalize[
          Cross[$CellContext`up, $CellContext`camw]]; $CellContext`camv = 
        Cross[$CellContext`camw, $CellContext`camu]; Graphics3D[{
          Arrowheads[Small], 
          Point[
           Part[$CellContext`camera0, 1]], 
          Point[
           Part[$CellContext`camera0, 2]], 
          Text["w", $CellContext`camw + Part[$CellContext`camera0, 1]], 
          Text["u", $CellContext`camu + Part[$CellContext`camera0, 1]], 
          Text["v", $CellContext`camv + Part[$CellContext`camera0, 1]], 
          Arrow[{
            Part[$CellContext`camera0, 1], 
            Part[$CellContext`camera0, 2]}], Red, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camw + 
            Part[$CellContext`camera0, 1]}], Green, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camu + 
            Part[$CellContext`camera0, 1]}], Blue, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camv + 
            Part[$CellContext`camera0, 1]}]}, Axes -> True, 
         PlotRange -> {{-3, 3}, {-3, 3}, {-3, 3}}]), 
      "Specifications" :> {{{$CellContext`x$$, 0}, -2, 
         2}, {{$CellContext`y$$, 0}, -2, 2}, {{$CellContext`z$$, 0}, -2, 2}}, 
      "Options" :> {}, "DefaultOptions" :> {}],
     ImageSizeCache->{531., {334., 343.}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellChangeTimes->{{3.8207066111522746`*^9, 3.820706629249084*^9}, {
   3.8207066862717857`*^9, 3.820706707096868*^9}, {3.8207074928945923`*^9, 
   3.820707507851592*^9}, 3.8207075745165925`*^9, {3.8207076130965924`*^9, 
   3.820707622191592*^9}, 3.8207247148335085`*^9}],

Cell[BoxData[
 StyleBox[
  "\:6c42\:8fd0\:52a8\:76f8\:673a\:89c6\:89d2\:4e0b\:7684\:5e73\:9762", 
  "Subsubsection"]], "Input",
 CellChangeTimes->{{3.820706358820044*^9, 3.8207063660267644`*^9}, {
  3.8207074313525925`*^9, 3.820707465422592*^9}},
 TextAlignment->Center],

Cell[BoxData[
 StyleBox[
  "\:8fc7lookat\:5e76\:4e14\:5782\:76f4\:4e8elookat\:7684\:5e73\:9762", 
  "Subsubtitle"]], "Input",
 CellChangeTimes->{{3.8207063895471163`*^9, 3.820706473008462*^9}, 
   3.8207074705795927`*^9, {3.8207148900401087`*^9, 3.8207149246205664`*^9}},
 TextAlignment->Center],

Cell[BoxData[
 RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
  RowBox[{"(*", "\:5b9a\:4e49\:76f8\:673a", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"camera0", ":=", 
     RowBox[{"camera", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "y", ",", "z"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", 
         RowBox[{"-", "1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"(*", "\:6c42\:76f8\:673a\:5c40\:90e8\:5750\:6807", "*)"}], 
    "\[IndentingNewLine]", 
    RowBox[{"up", "=", 
     RowBox[{"{", 
      RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camw", "=", 
     RowBox[{"Normalize", "[", 
      RowBox[{
       RowBox[{"camera0", "[", 
        RowBox[{"[", "1", "]"}], "]"}], "-", 
       RowBox[{"camera0", "[", 
        RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camu", "=", 
     RowBox[{"Normalize", "[", 
      RowBox[{"up", "\[Cross]", "camw"}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camv", "=", 
     RowBox[{"camw", "\[Cross]", "camu"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"(*", 
     RowBox[{
     "\:5c4f\:5e55\:4f4d\:7f6e", "\:ff0c", 
      "\:56db\:4e2a\:89d2\:7684\:5750\:6807"}], "*)"}], "\[IndentingNewLine]", 
    RowBox[{"upperLeft", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "-", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "+", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"lowerLeft", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "-", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "-", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"upperRight", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "+", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "+", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"lowerRight", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "+", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "-", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"Graphics3D", "[", 
     RowBox[{
      RowBox[{"{", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"Arrowheads", "[", "Small", "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Point", "[", 
         RowBox[{"camera0", "[", 
          RowBox[{"[", "1", "]"}], "]"}], "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Point", "[", 
         RowBox[{"camera0", "[", 
          RowBox[{"[", "2", "]"}], "]"}], "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<w\>\"", ",", 
          RowBox[{"camw", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<u\>\"", ",", 
          RowBox[{"camu", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<v\>\"", ",", 
          RowBox[{"camv", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "2", "]"}], "]"}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Red", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camw", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Green", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camu", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Blue", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camv", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Opacity", "[", ".3", "]"}], ",", "White", ",", 
        RowBox[{"Polygon", "[", 
         RowBox[{"{", 
          RowBox[{
          "upperLeft", ",", "lowerLeft", ",", "lowerRight", ",", 
           "upperRight"}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", 
      RowBox[{"Axes", "\[Rule]", "True"}], ",", 
      RowBox[{"PlotRange", "\[Rule]", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}]}], "}"}]}]}], 
     "\[IndentingNewLine]", "]"}]}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"y", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"z", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}]}], "\[IndentingNewLine]", 
  "]"}]], "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10002.},
 CellChangeTimes->{{3.817333895641637*^9, 3.8173339709333687`*^9}, {
   3.81733401392829*^9, 3.8173340177603006`*^9}, {3.817334557001119*^9, 
   3.817334586799177*^9}, {3.8173346247757807`*^9, 3.8173346540459967`*^9}, 
   3.817334857444251*^9, {3.817334892441251*^9, 3.8173349357212505`*^9}, {
   3.8173349706662507`*^9, 3.817335027612251*^9}, {3.8173350973042507`*^9, 
   3.817335128815251*^9}, {3.817335237379274*^9, 3.8173352935398893`*^9}, {
   3.8173353316346984`*^9, 3.8173353889424286`*^9}, {3.8173354748080144`*^9, 
   3.81733555447298*^9}, 3.817335591787711*^9, {3.817335626826215*^9, 
   3.8173356328068123`*^9}, {3.817335695044036*^9, 3.8173357361971507`*^9}, {
   3.8173357673772683`*^9, 3.817335801774708*^9}, {3.817335887846314*^9, 
   3.8173359354990788`*^9}, {3.8173359818987184`*^9, 
   3.8173360571442423`*^9}, {3.8173361918207083`*^9, 3.817336238160342*^9}, 
   3.817336489739497*^9, 3.8173379763469496`*^9, {3.8173477193833776`*^9, 
   3.817347732861725*^9}, {3.8173477883302717`*^9, 3.8173478044988885`*^9}, 
   3.817348546927899*^9, {3.8173490648879194`*^9, 3.817349121790609*^9}, {
   3.817349174255855*^9, 3.8173492572001486`*^9}, {3.817349330670495*^9, 
   3.817349335480976*^9}, {3.8173495632617517`*^9, 3.817349602256651*^9}, {
   3.8173497379652205`*^9, 3.8173497419396176`*^9}, 3.81735012210063*^9, {
   3.8173501700124207`*^9, 3.8173501825916786`*^9}, {3.8173502510995283`*^9, 
   3.817350260349454*^9}, {3.8173506229087057`*^9, 3.8173506516575804`*^9}, {
   3.8173508048919024`*^9, 3.8173508274891615`*^9}, {3.8173541353049245`*^9, 
   3.8173541904474382`*^9}, {3.8173542294453373`*^9, 3.817354281702563*^9}, {
   3.817354479236314*^9, 3.8173545032827187`*^9}, {3.8173545508454742`*^9, 
   3.8173546698063693`*^9}, {3.8173586305744114`*^9, 3.817358633190673*^9}, {
   3.817358764258778*^9, 3.817358828873239*^9}, 3.8174156245745373`*^9, {
   3.817415663231971*^9, 3.817415673961315*^9}, {3.8174179924214516`*^9, 
   3.8174179957276134`*^9}, 3.81741980884787*^9, {3.8174198443405056`*^9, 
   3.8174198498571787`*^9}, {3.817510793124935*^9, 3.8175107956651893`*^9}, {
   3.817510856418264*^9, 3.817510913024372*^9}, 3.8175109827803965`*^9, {
   3.8175111544412284`*^9, 3.817511196139058*^9}, {3.81751134795365*^9, 
   3.81751145206365*^9}, {3.81751149240565*^9, 3.817511569931622*^9}, {
   3.817511627843413*^9, 3.8175116704146695`*^9}, {3.8175246484103627`*^9, 
   3.8175246499425163`*^9}, {3.8175247857690973`*^9, 
   3.8175248080953293`*^9}, {3.817526853203825*^9, 3.8175268558920937`*^9}, 
   3.8175335319660587`*^9, {3.817598243487692*^9, 3.817598247741692*^9}, {
   3.817598312353692*^9, 3.817598313978692*^9}, {3.817691969752584*^9, 
   3.817692004167025*^9}, {3.8176925334699497`*^9, 3.8176925493175344`*^9}, {
   3.8176925814457474`*^9, 3.8176927274443455`*^9}, {3.8177776884141254`*^9, 
   3.817777754646285*^9}, {3.8177777940862284`*^9, 3.8177778092997494`*^9}, {
   3.8177791123100376`*^9, 3.8177791717229786`*^9}, {3.817794339392627*^9, 
   3.817794380659753*^9}, {3.8178503757329893`*^9, 3.817850389354989*^9}, {
   3.8179593795623074`*^9, 3.8179593869720483`*^9}, {3.8179594897443247`*^9, 
   3.817959506953045*^9}, {3.8179595416005096`*^9, 3.8179595928336325`*^9}, 
   3.817964695983906*^9, {3.8179648017314796`*^9, 3.8179648064889555`*^9}, {
   3.817964875764882*^9, 3.8179649006643715`*^9}, {3.8179649371834154`*^9, 
   3.8179649555474157`*^9}, {3.8179654080171065`*^9, 
   3.8179654622805324`*^9}, {3.8179659928335824`*^9, 
   3.8179659990172005`*^9}, {3.8179663889031854`*^9, 3.817966395474842*^9}, {
   3.817967441593444*^9, 3.8179674670259867`*^9}, {3.8179675443417177`*^9, 
   3.8179675499002733`*^9}, {3.8181100156108475`*^9, 
   3.8181100230478473`*^9}, {3.818110107505847*^9, 3.8181101238898473`*^9}, {
   3.818110287098138*^9, 3.818110425062933*^9}, 3.8181104582692537`*^9, {
   3.818110683594784*^9, 3.8181107184802723`*^9}, {3.818111051855606*^9, 
   3.818111096009021*^9}, {3.818111357713189*^9, 3.8181113948459015`*^9}, {
   3.8181125448278885`*^9, 3.8181125716895742`*^9}, {3.8181126206574707`*^9, 
   3.8181126738607903`*^9}, {3.8181135731977153`*^9, 
   3.8181136002834234`*^9}, {3.8181145396493506`*^9, 3.818114540172403*^9}, {
   3.8181318247227273`*^9, 3.818131856116866*^9}, {3.8182131370598993`*^9, 
   3.8182131456887627`*^9}, {3.820631366005858*^9, 3.8206313995552125`*^9}, {
   3.820631432992556*^9, 3.8206314674680033`*^9}, {3.8206318661918716`*^9, 
   3.8206318830305552`*^9}, {3.8207026816753664`*^9, 
   3.8207026940766063`*^9}, {3.8207037501302013`*^9, 
   3.8207037508912773`*^9}, {3.820703794283616*^9, 3.8207039525044365`*^9}, {
   3.820704008737059*^9, 3.820704019865172*^9}, {3.8207042493761206`*^9, 
   3.8207042893791203`*^9}, {3.82070432907909*^9, 3.8207043307522573`*^9}, {
   3.8207045398951693`*^9, 3.8207045693451147`*^9}, {3.8207047417963576`*^9, 
   3.820704748837062*^9}, {3.8207047804922266`*^9, 3.8207047812293005`*^9}, {
   3.8207049018663635`*^9, 3.820704910281204*^9}, {3.820705001535329*^9, 
   3.8207050303152065`*^9}, {3.8207050733405085`*^9, 3.820705079932168*^9}, 
   3.82070512416059*^9, 3.820705232535427*^9, {3.8207052838205547`*^9, 
   3.8207052961407866`*^9}, 3.820705401218293*^9, 3.8207056769618645`*^9, {
   3.820705717685937*^9, 3.8207057247716455`*^9}, {3.820705775004668*^9, 
   3.820705807642932*^9}, {3.8207058399511623`*^9, 3.8207058661197786`*^9}, {
   3.8207059237935457`*^9, 3.8207059564958153`*^9}, {3.820706017124878*^9, 
   3.8207060556467295`*^9}, {3.8207061403541994`*^9, 3.8207061788260465`*^9}, 
   3.8207062156677303`*^9, {3.820706280059169*^9, 3.820706299847147*^9}, 
   3.820706512727433*^9, {3.8207066019353533`*^9, 3.8207066285050097`*^9}, {
   3.8207066640775666`*^9, 3.8207067059987583`*^9}, {3.820707661922592*^9, 
   3.820707708667592*^9}, {3.8207149842665305`*^9, 3.8207149846365676`*^9}, {
   3.820715260047106*^9, 3.820715305032604*^9}, {3.820715348658966*^9, 
   3.8207153561527157`*^9}, {3.8207154281869183`*^9, 
   3.8207154407781773`*^9}, {3.8207186468317595`*^9, 3.820718647175794*^9}, {
   3.8207186932634025`*^9, 3.820718726617738*^9}, {3.820718784186494*^9, 
   3.820718810871162*^9}, {3.820718884671541*^9, 3.82071893286436*^9}, {
   3.820724728477873*^9, 3.82072472994702*^9}, {3.8207247703340583`*^9, 
   3.820724808035828*^9}}],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`x$$ = 0, $CellContext`y$$ = 
    0, $CellContext`z$$ = 0, Typeset`show$$ = True, 
    Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", 
    Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = 
    "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`x$$], 0}, -2, 2}, {{
       Hold[$CellContext`y$$], 0}, -2, 2}, {{
       Hold[$CellContext`z$$], 0}, -2, 2}}, Typeset`size$$ = {
    468., {250., 257.}}, Typeset`update$$ = 0, Typeset`initDone$$, 
    Typeset`skipInitDone$$ = True, $CellContext`x$83373$$ = 
    0, $CellContext`y$83374$$ = 0, $CellContext`z$83375$$ = 0}, 
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, 
      "Variables" :> {$CellContext`x$$ = 0, $CellContext`y$$ = 
        0, $CellContext`z$$ = 0}, "ControllerVariables" :> {
        Hold[$CellContext`x$$, $CellContext`x$83373$$, 0], 
        Hold[$CellContext`y$$, $CellContext`y$83374$$, 0], 
        Hold[$CellContext`z$$, $CellContext`z$83375$$, 0]}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, 
      "Body" :> ($CellContext`camera0 := \
$CellContext`camera[{$CellContext`x$$, $CellContext`y$$, $CellContext`z$$}, {
          0, 0, -1}]; $CellContext`up = {0, 1, 0}; $CellContext`camw = 
        Normalize[
         Part[$CellContext`camera0, 1] - 
          Part[$CellContext`camera0, 2]]; $CellContext`camu = Normalize[
          Cross[$CellContext`up, $CellContext`camw]]; $CellContext`camv = 
        Cross[$CellContext`camw, $CellContext`camu]; $CellContext`upperLeft = 
        Part[$CellContext`camera0, 
           1] - $CellContext`camu ($CellContext`viewPortWidth/
          2) + ($CellContext`viewPortHeight/
           2) $CellContext`camv - $CellContext`camw; $CellContext`lowerLeft = 
        Part[$CellContext`camera0, 
           1] - $CellContext`camu ($CellContext`viewPortWidth/
          2) - ($CellContext`viewPortHeight/
          2) $CellContext`camv - $CellContext`camw; $CellContext`upperRight = 
        Part[$CellContext`camera0, 
           1] + $CellContext`camu ($CellContext`viewPortWidth/
           2) + ($CellContext`viewPortHeight/
           2) $CellContext`camv - $CellContext`camw; $CellContext`lowerRight = 
        Part[$CellContext`camera0, 
           1] + $CellContext`camu ($CellContext`viewPortWidth/
           2) - ($CellContext`viewPortHeight/
          2) $CellContext`camv - $CellContext`camw; Graphics3D[{
          Arrowheads[Small], 
          Point[
           Part[$CellContext`camera0, 1]], 
          Point[
           Part[$CellContext`camera0, 2]], 
          Text["w", $CellContext`camw + Part[$CellContext`camera0, 1]], 
          Text["u", $CellContext`camu + Part[$CellContext`camera0, 1]], 
          Text["v", $CellContext`camv + Part[$CellContext`camera0, 1]], 
          Arrow[{
            Part[$CellContext`camera0, 1], 
            Part[$CellContext`camera0, 2]}], Red, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camw + 
            Part[$CellContext`camera0, 1]}], Green, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camu + 
            Part[$CellContext`camera0, 1]}], Blue, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camv + 
            Part[$CellContext`camera0, 1]}], 
          Opacity[0.3], White, 
          
          Polygon[{$CellContext`upperLeft, $CellContext`lowerLeft, \
$CellContext`lowerRight, $CellContext`upperRight}]}, Axes -> True, 
         PlotRange -> {{-3, 3}, {-3, 3}, {-3, 3}}]), 
      "Specifications" :> {{{$CellContext`x$$, 0}, -2, 
         2}, {{$CellContext`y$$, 0}, -2, 2}, {{$CellContext`z$$, 0}, -2, 2}}, 
      "Options" :> {}, "DefaultOptions" :> {}],
     ImageSizeCache->{531., {334., 343.}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellChangeTimes->{
  3.8207074779975924`*^9, 3.8207077092025924`*^9, 3.8207149899190955`*^9, 
   3.820715306119713*^9, 3.820715356620762*^9, {3.8207154291510143`*^9, 
   3.820715448555955*^9}, 3.820718648765953*^9, 3.8207186960946856`*^9, 
   3.820718811777253*^9, 3.82071888715779*^9, 3.8207189337664504`*^9, {
   3.8207189752305965`*^9, 3.820719001329206*^9}, 3.820724731328158*^9, 
   3.8207248099820223`*^9}],

Cell[BoxData[
 StyleBox[
  "\:6c42\:8fd0\:52a8\:76f8\:673a\:89c6\:89d2\:4e0b\:7684\:5149\:7ebf", 
  "Subsubsection"]], "Input",
 CellChangeTimes->{{3.820706358820044*^9, 3.8207063660267644`*^9}, {
   3.8207074313525925`*^9, 3.820707465422592*^9}, 3.820719264071478*^9},
 TextAlignment->Center],

Cell[BoxData[
 StyleBox["\:4ecelookfrom\:70b9\:53d1\:5c04\:7684\:5149\:7ebf", 
  "Subsubtitle"]], "Input",
 CellChangeTimes->{{3.8207063895471163`*^9, 3.820706473008462*^9}, 
   3.8207074705795927`*^9, {3.8207148900401087`*^9, 3.8207149246205664`*^9}, {
   3.8207192698990602`*^9, 3.8207192823243027`*^9}},
 TextAlignment->Center],

Cell[BoxData[
 RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
  RowBox[{"(*", "\:5b9a\:4e49\:76f8\:673a", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"camera0", ":=", 
     RowBox[{"camera", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "y", ",", "z"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", "0", ",", 
         RowBox[{"-", "1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"(*", "\:6c42\:76f8\:673a\:5c40\:90e8\:5750\:6807", "*)"}], 
    "\[IndentingNewLine]", 
    RowBox[{"up", "=", 
     RowBox[{"{", 
      RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camw", "=", 
     RowBox[{"Normalize", "[", 
      RowBox[{
       RowBox[{"camera0", "[", 
        RowBox[{"[", "1", "]"}], "]"}], "-", 
       RowBox[{"camera0", "[", 
        RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camu", "=", 
     RowBox[{"Normalize", "[", 
      RowBox[{"up", "\[Cross]", "camw"}], "]"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"camv", "=", 
     RowBox[{"camw", "\[Cross]", "camu"}]}], ";", "\[IndentingNewLine]", 
    RowBox[{"(*", 
     RowBox[{
     "\:5c4f\:5e55\:4f4d\:7f6e", "\:ff0c", 
      "\:56db\:4e2a\:89d2\:7684\:5750\:6807"}], "*)"}], "\[IndentingNewLine]", 
    RowBox[{"upperLeft", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "-", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "+", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"lowerLeft", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "-", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "-", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"upperRight", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "+", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "+", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"lowerRight", "=", 
     RowBox[{
      RowBox[{"camera0", "[", 
       RowBox[{"[", "1", "]"}], "]"}], "+", 
      RowBox[{"camu", "*", 
       FractionBox["viewPortWidth", "2"]}], "-", 
      RowBox[{
       FractionBox["viewPortHeight", "2"], "*", "camv"}], "-", "camw"}]}], 
    ";", "\[IndentingNewLine]", 
    RowBox[{"Graphics3D", "[", 
     RowBox[{
      RowBox[{"{", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"Arrowheads", "[", "Small", "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Point", "[", 
         RowBox[{"camera0", "[", 
          RowBox[{"[", "1", "]"}], "]"}], "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Point", "[", 
         RowBox[{"camera0", "[", 
          RowBox[{"[", "2", "]"}], "]"}], "]"}], ",", "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<w\>\"", ",", 
          RowBox[{"camw", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<u\>\"", ",", 
          RowBox[{"camu", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Text", "[", 
         RowBox[{"\"\<v\>\"", ",", 
          RowBox[{"camv", "+", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}]}]}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camera0", "[", 
            RowBox[{"[", "2", "]"}], "]"}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"upperLeft", "+", 
            FractionBox[
             RowBox[{"viewPortWidth", " ", "u", "*", "camu"}], "width"], "-", 
            FractionBox[
             RowBox[{"viewPortHeight", " ", "v", "*", "camv"}], "height"]}]}],
           "}"}], "]"}], ",", "\[IndentingNewLine]", "Red", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camw", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Green", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camu", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", "Blue", ",", 
        RowBox[{"Arrow", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"camera0", "[", 
            RowBox[{"[", "1", "]"}], "]"}], ",", 
           RowBox[{"camv", "+", 
            RowBox[{"camera0", "[", 
             RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}], "]"}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"Opacity", "[", ".3", "]"}], ",", "White", ",", 
        RowBox[{"Polygon", "[", 
         RowBox[{"{", 
          RowBox[{
          "upperLeft", ",", "lowerLeft", ",", "lowerRight", ",", 
           "upperRight"}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", 
      RowBox[{"Axes", "\[Rule]", "True"}], ",", 
      RowBox[{"PlotRange", "\[Rule]", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "3"}], ",", "3"}], "}"}]}], "}"}]}]}], 
     "\[IndentingNewLine]", "]"}]}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"x", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"y", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"z", ",", "0"}], "}"}], ",", 
     RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"u", ",", "0", ",", "width"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"v", ",", "0", ",", "height"}], "}"}]}], "\[IndentingNewLine]", 
  "]"}]], "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10002.},
 CellChangeTimes->{{3.817333895641637*^9, 3.8173339709333687`*^9}, {
   3.81733401392829*^9, 3.8173340177603006`*^9}, {3.817334557001119*^9, 
   3.817334586799177*^9}, {3.8173346247757807`*^9, 3.8173346540459967`*^9}, 
   3.817334857444251*^9, {3.817334892441251*^9, 3.8173349357212505`*^9}, {
   3.8173349706662507`*^9, 3.817335027612251*^9}, {3.8173350973042507`*^9, 
   3.817335128815251*^9}, {3.817335237379274*^9, 3.8173352935398893`*^9}, {
   3.8173353316346984`*^9, 3.8173353889424286`*^9}, {3.8173354748080144`*^9, 
   3.81733555447298*^9}, 3.817335591787711*^9, {3.817335626826215*^9, 
   3.8173356328068123`*^9}, {3.817335695044036*^9, 3.8173357361971507`*^9}, {
   3.8173357673772683`*^9, 3.817335801774708*^9}, {3.817335887846314*^9, 
   3.8173359354990788`*^9}, {3.8173359818987184`*^9, 
   3.8173360571442423`*^9}, {3.8173361918207083`*^9, 3.817336238160342*^9}, 
   3.817336489739497*^9, 3.8173379763469496`*^9, {3.8173477193833776`*^9, 
   3.817347732861725*^9}, {3.8173477883302717`*^9, 3.8173478044988885`*^9}, 
   3.817348546927899*^9, {3.8173490648879194`*^9, 3.817349121790609*^9}, {
   3.817349174255855*^9, 3.8173492572001486`*^9}, {3.817349330670495*^9, 
   3.817349335480976*^9}, {3.8173495632617517`*^9, 3.817349602256651*^9}, {
   3.8173497379652205`*^9, 3.8173497419396176`*^9}, 3.81735012210063*^9, {
   3.8173501700124207`*^9, 3.8173501825916786`*^9}, {3.8173502510995283`*^9, 
   3.817350260349454*^9}, {3.8173506229087057`*^9, 3.8173506516575804`*^9}, {
   3.8173508048919024`*^9, 3.8173508274891615`*^9}, {3.8173541353049245`*^9, 
   3.8173541904474382`*^9}, {3.8173542294453373`*^9, 3.817354281702563*^9}, {
   3.817354479236314*^9, 3.8173545032827187`*^9}, {3.8173545508454742`*^9, 
   3.8173546698063693`*^9}, {3.8173586305744114`*^9, 3.817358633190673*^9}, {
   3.817358764258778*^9, 3.817358828873239*^9}, 3.8174156245745373`*^9, {
   3.817415663231971*^9, 3.817415673961315*^9}, {3.8174179924214516`*^9, 
   3.8174179957276134`*^9}, 3.81741980884787*^9, {3.8174198443405056`*^9, 
   3.8174198498571787`*^9}, {3.817510793124935*^9, 3.8175107956651893`*^9}, {
   3.817510856418264*^9, 3.817510913024372*^9}, 3.8175109827803965`*^9, {
   3.8175111544412284`*^9, 3.817511196139058*^9}, {3.81751134795365*^9, 
   3.81751145206365*^9}, {3.81751149240565*^9, 3.817511569931622*^9}, {
   3.817511627843413*^9, 3.8175116704146695`*^9}, {3.8175246484103627`*^9, 
   3.8175246499425163`*^9}, {3.8175247857690973`*^9, 
   3.8175248080953293`*^9}, {3.817526853203825*^9, 3.8175268558920937`*^9}, 
   3.8175335319660587`*^9, {3.817598243487692*^9, 3.817598247741692*^9}, {
   3.817598312353692*^9, 3.817598313978692*^9}, {3.817691969752584*^9, 
   3.817692004167025*^9}, {3.8176925334699497`*^9, 3.8176925493175344`*^9}, {
   3.8176925814457474`*^9, 3.8176927274443455`*^9}, {3.8177776884141254`*^9, 
   3.817777754646285*^9}, {3.8177777940862284`*^9, 3.8177778092997494`*^9}, {
   3.8177791123100376`*^9, 3.8177791717229786`*^9}, {3.817794339392627*^9, 
   3.817794380659753*^9}, {3.8178503757329893`*^9, 3.817850389354989*^9}, {
   3.8179593795623074`*^9, 3.8179593869720483`*^9}, {3.8179594897443247`*^9, 
   3.817959506953045*^9}, {3.8179595416005096`*^9, 3.8179595928336325`*^9}, 
   3.817964695983906*^9, {3.8179648017314796`*^9, 3.8179648064889555`*^9}, {
   3.817964875764882*^9, 3.8179649006643715`*^9}, {3.8179649371834154`*^9, 
   3.8179649555474157`*^9}, {3.8179654080171065`*^9, 
   3.8179654622805324`*^9}, {3.8179659928335824`*^9, 
   3.8179659990172005`*^9}, {3.8179663889031854`*^9, 3.817966395474842*^9}, {
   3.817967441593444*^9, 3.8179674670259867`*^9}, {3.8179675443417177`*^9, 
   3.8179675499002733`*^9}, {3.8181100156108475`*^9, 
   3.8181100230478473`*^9}, {3.818110107505847*^9, 3.8181101238898473`*^9}, {
   3.818110287098138*^9, 3.818110425062933*^9}, 3.8181104582692537`*^9, {
   3.818110683594784*^9, 3.8181107184802723`*^9}, {3.818111051855606*^9, 
   3.818111096009021*^9}, {3.818111357713189*^9, 3.8181113948459015`*^9}, {
   3.8181125448278885`*^9, 3.8181125716895742`*^9}, {3.8181126206574707`*^9, 
   3.8181126738607903`*^9}, {3.8181135731977153`*^9, 
   3.8181136002834234`*^9}, {3.8181145396493506`*^9, 3.818114540172403*^9}, {
   3.8181318247227273`*^9, 3.818131856116866*^9}, {3.8182131370598993`*^9, 
   3.8182131456887627`*^9}, {3.820631366005858*^9, 3.8206313995552125`*^9}, {
   3.820631432992556*^9, 3.8206314674680033`*^9}, {3.8206318661918716`*^9, 
   3.8206318830305552`*^9}, {3.8207026816753664`*^9, 
   3.8207026940766063`*^9}, {3.8207037501302013`*^9, 
   3.8207037508912773`*^9}, {3.820703794283616*^9, 3.8207039525044365`*^9}, {
   3.820704008737059*^9, 3.820704019865172*^9}, {3.8207042493761206`*^9, 
   3.8207042893791203`*^9}, {3.82070432907909*^9, 3.8207043307522573`*^9}, {
   3.8207045398951693`*^9, 3.8207045693451147`*^9}, {3.8207047417963576`*^9, 
   3.820704748837062*^9}, {3.8207047804922266`*^9, 3.8207047812293005`*^9}, {
   3.8207049018663635`*^9, 3.820704910281204*^9}, {3.820705001535329*^9, 
   3.8207050303152065`*^9}, {3.8207050733405085`*^9, 3.820705079932168*^9}, 
   3.82070512416059*^9, 3.820705232535427*^9, {3.8207052838205547`*^9, 
   3.8207052961407866`*^9}, 3.820705401218293*^9, 3.8207056769618645`*^9, {
   3.820705717685937*^9, 3.8207057247716455`*^9}, {3.820705775004668*^9, 
   3.820705807642932*^9}, {3.8207058399511623`*^9, 3.8207058661197786`*^9}, {
   3.8207059237935457`*^9, 3.8207059564958153`*^9}, {3.820706017124878*^9, 
   3.8207060556467295`*^9}, {3.8207061403541994`*^9, 3.8207061788260465`*^9}, 
   3.8207062156677303`*^9, {3.820706280059169*^9, 3.820706299847147*^9}, 
   3.820706512727433*^9, {3.8207066019353533`*^9, 3.8207066285050097`*^9}, {
   3.8207066640775666`*^9, 3.8207067059987583`*^9}, {3.820707661922592*^9, 
   3.820707708667592*^9}, {3.8207149842665305`*^9, 3.8207149846365676`*^9}, {
   3.820715260047106*^9, 3.820715305032604*^9}, {3.820715348658966*^9, 
   3.8207153561527157`*^9}, {3.8207154281869183`*^9, 
   3.8207154407781773`*^9}, {3.8207186468317595`*^9, 3.820718647175794*^9}, {
   3.8207186932634025`*^9, 3.820718726617738*^9}, {3.820718784186494*^9, 
   3.820718810871162*^9}, {3.820718884671541*^9, 3.82071893286436*^9}, {
   3.8207193541204815`*^9, 3.8207193729493647`*^9}, 3.820719747794845*^9, {
   3.8207201153986015`*^9, 3.8207201164317055`*^9}, {3.820720156424704*^9, 
   3.8207201870437655`*^9}, {3.8207202435504155`*^9, 3.82072024799286*^9}, {
   3.820720351892249*^9, 3.8207203690999694`*^9}, {3.820720440526111*^9, 
   3.8207204790659647`*^9}, {3.8207205194950075`*^9, 
   3.8207205432183795`*^9}, {3.82072063613367*^9, 3.820720681398196*^9}, {
   3.82072072173623*^9, 3.820720736231679*^9}, {3.820721488079524*^9, 
   3.8207214900805235`*^9}, {3.8207248277578*^9, 3.820724845015526*^9}}],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`u$$ = 
    45.800000000000004`, $CellContext`v$$ = 
    0, $CellContext`x$$ = -0.7349999999999999, $CellContext`y$$ = -0.345, \
$CellContext`z$$ = 0.29499999999999993`, Typeset`show$$ = True, 
    Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", 
    Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = 
    "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`x$$], 0}, -2, 2}, {{
       Hold[$CellContext`y$$], 0}, -2, 2}, {{
       Hold[$CellContext`z$$], 0}, -2, 2}, {
      Hold[$CellContext`u$$], 0, 200}, {
      Hold[$CellContext`v$$], 0, 100}}, Typeset`size$$ = {491., {222., 231.}},
     Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = 
    True, $CellContext`x$83481$$ = 0, $CellContext`y$83482$$ = 
    0, $CellContext`z$83483$$ = 0, $CellContext`u$83484$$ = 
    0, $CellContext`v$83485$$ = 0}, 
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, 
      "Variables" :> {$CellContext`u$$ = 0, $CellContext`v$$ = 
        0, $CellContext`x$$ = 0, $CellContext`y$$ = 0, $CellContext`z$$ = 0}, 
      "ControllerVariables" :> {
        Hold[$CellContext`x$$, $CellContext`x$83481$$, 0], 
        Hold[$CellContext`y$$, $CellContext`y$83482$$, 0], 
        Hold[$CellContext`z$$, $CellContext`z$83483$$, 0], 
        Hold[$CellContext`u$$, $CellContext`u$83484$$, 0], 
        Hold[$CellContext`v$$, $CellContext`v$83485$$, 0]}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, 
      "Body" :> ($CellContext`camera0 := \
$CellContext`camera[{$CellContext`x$$, $CellContext`y$$, $CellContext`z$$}, {
          0, 0, -1}]; $CellContext`up = {0, 1, 0}; $CellContext`camw = 
        Normalize[
         Part[$CellContext`camera0, 1] - 
          Part[$CellContext`camera0, 2]]; $CellContext`camu = Normalize[
          Cross[$CellContext`up, $CellContext`camw]]; $CellContext`camv = 
        Cross[$CellContext`camw, $CellContext`camu]; $CellContext`upperLeft = 
        Part[$CellContext`camera0, 
           1] - $CellContext`camu ($CellContext`viewPortWidth/
          2) + ($CellContext`viewPortHeight/
           2) $CellContext`camv - $CellContext`camw; $CellContext`lowerLeft = 
        Part[$CellContext`camera0, 
           1] - $CellContext`camu ($CellContext`viewPortWidth/
          2) - ($CellContext`viewPortHeight/
          2) $CellContext`camv - $CellContext`camw; $CellContext`upperRight = 
        Part[$CellContext`camera0, 
           1] + $CellContext`camu ($CellContext`viewPortWidth/
           2) + ($CellContext`viewPortHeight/
           2) $CellContext`camv - $CellContext`camw; $CellContext`lowerRight = 
        Part[$CellContext`camera0, 
           1] + $CellContext`camu ($CellContext`viewPortWidth/
           2) - ($CellContext`viewPortHeight/
          2) $CellContext`camv - $CellContext`camw; Graphics3D[{
          Arrowheads[Small], 
          Point[
           Part[$CellContext`camera0, 1]], 
          Point[
           Part[$CellContext`camera0, 2]], 
          Text["w", $CellContext`camw + Part[$CellContext`camera0, 1]], 
          Text["u", $CellContext`camu + Part[$CellContext`camera0, 1]], 
          Text["v", $CellContext`camv + Part[$CellContext`camera0, 1]], 
          Arrow[{
            Part[$CellContext`camera0, 1], 
            Part[$CellContext`camera0, 2]}], 
          Arrow[{
            
            Part[$CellContext`camera0, 
             1], $CellContext`upperLeft + $CellContext`viewPortWidth \
$CellContext`u$$ $CellContext`camu/$CellContext`width - \
$CellContext`viewPortHeight $CellContext`v$$ \
$CellContext`camv/$CellContext`height}], Red, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camw + 
            Part[$CellContext`camera0, 1]}], Green, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camu + 
            Part[$CellContext`camera0, 1]}], Blue, 
          Arrow[{
            Part[$CellContext`camera0, 1], $CellContext`camv + 
            Part[$CellContext`camera0, 1]}], 
          Opacity[0.3], White, 
          
          Polygon[{$CellContext`upperLeft, $CellContext`lowerLeft, \
$CellContext`lowerRight, $CellContext`upperRight}]}, Axes -> True, 
         PlotRange -> {{-3, 3}, {-3, 3}, {-3, 3}}]), 
      "Specifications" :> {{{$CellContext`x$$, 0}, -2, 
         2}, {{$CellContext`y$$, 0}, -2, 2}, {{$CellContext`z$$, 0}, -2, 
         2}, {$CellContext`u$$, 0, 200}, {$CellContext`v$$, 0, 100}}, 
      "Options" :> {}, "DefaultOptions" :> {}],
     ImageSizeCache->{554., {336., 345.}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellChangeTimes->{
  3.820719288716942*^9, 3.8207204839414525`*^9, {3.820720523678426*^9, 
   3.820720543912449*^9}, {3.820720654685525*^9, 3.820720681976254*^9}, {
   3.820720727861842*^9, 3.820720737109767*^9}, 3.82072484985801*^9}]
},
WindowToolbars->"EditBar",
WindowSize->{997, 820},
WindowMargins->{{Automatic, -5}, {Automatic, 0}},
CellContext->Notebook,
Magnification:>1.3 Inherited,
FrontEndVersion->"11.0 for Microsoft Windows (64-bit) (2016\:5e7410\:67088\
\:65e5)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[558, 20, 616, 10, 96, "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10000.}],
Cell[CellGroupData[{
Cell[1199, 34, 425, 7, 49, "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10001.}],
Cell[1627, 43, 5965, 95, 215, "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10001.}]
}, Open  ]],
Cell[7607, 141, 198, 4, 49, "Input"],
Cell[7808, 147, 332, 8, 43, "Input"],
Cell[8143, 157, 10648, 207, 927, "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10002.}],
Cell[18794, 366, 3635, 72, 698, "Output"],
Cell[22432, 440, 270, 6, 49, "Input"],
Cell[22705, 448, 295, 6, 43, "Input"],
Cell[23003, 456, 12656, 256, 1187, "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10002.}],
Cell[35662, 714, 4836, 95, 698, "Output"],
Cell[40501, 811, 293, 6, 49, "Input"],
Cell[40797, 819, 330, 6, 43, "Input"],
Cell[41130, 827, 13738, 277, 1298, "Input",
 CellGroupingRules->{"GroupTogetherGrouping", 10002.}],
Cell[54871, 1106, 5438, 108, 702, "Output"]
}
]
*)

